package GestionDatosFM;

import ExcepcionesFM.ExcepcionPuntuacionInvalida;
import LogicaFM.EquipoPrimera;
import LogicaFM.Fecha;
import LogicaFM.Partido;

public class GestorPartido {
	
	public static final int CANTIDADPARTIDOS = 3;

	public static void incluirJugadores(Partido partido) {

		
		partido.setPlantelLocal(JugadorDAO.selectJugador(partido.getNombreLocal()));
		partido.setPlantelVisitante(JugadorDAO.selectJugador(partido.getNombreVisitante()));
		
	}

	public static void validarConsistencia(Partido partidoAValidar, Fecha fechaAValidar) throws ExcepcionPuntuacionInvalida{
		
		int totalConvertidosLocal, totalRecibidosLocal, totalEnContraLocal;
		int totalConvertidosVisitante, totalRecibidosVisitante, totalEnContraVisitante;
		String motivo = "";
		
		totalConvertidosLocal = partidoAValidar.getEquipoLocal().totalGolesConvertidos(fechaAValidar);
		totalRecibidosLocal = partidoAValidar.getEquipoLocal().totalGolesRecibidos(fechaAValidar);
		totalEnContraLocal = partidoAValidar.getEquipoLocal().totalGolesEnContra(fechaAValidar);
		
		totalConvertidosVisitante = partidoAValidar.getEquipoVisitante().totalGolesConvertidos(fechaAValidar);
		totalRecibidosVisitante = partidoAValidar.getEquipoVisitante().totalGolesRecibidos(fechaAValidar);
		totalEnContraVisitante = partidoAValidar.getEquipoVisitante().totalGolesEnContra(fechaAValidar);
		
		if(totalConvertidosLocal!=partidoAValidar.getGolesLocal())
			motivo+="La suma de los Goles Covertidos por el Equipo Local difiere del Resultado del Partido. ";
		
		if(totalConvertidosVisitante!=partidoAValidar.getGolesVisitante())
			motivo+="La suma de los Goles Covertidos por el Equipo Visitante difiere del Resultado del Partido. ";
		
		if(totalConvertidosLocal!=totalRecibidosVisitante)
			motivo+="El total de Goles Convertidos por el Equipo Local difiere del total de Goles Recibidos por el Equipo Visitante. ";
		
		if(totalConvertidosVisitante!=totalRecibidosLocal)
			motivo+="El total de Goles Convertidos por el Equipo Visitante difiere del total de Goles Recibidos por el Equipo Local. ";
		
		if(totalEnContraLocal>partidoAValidar.getGolesVisitante())
			motivo+="El total de Goles En Contra del Equipo Local es mayor de la cantidad de Goles Recibidos por el mismo";
		
		if(totalEnContraVisitante>partidoAValidar.getGolesLocal())
			motivo+="El total de Goles En Contra del Equipo Visitante es mayor de la cantidad de Goles Recibidos por el mismo";
		
		if(motivo.equals("") == false)
			throw new ExcepcionPuntuacionInvalida(motivo);
	}

}
